﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XingFuStudio.Pioneer.Applications.City.Element;

namespace XingFuStudio.Pioneer.Applications.City.Entity {
    public class CityInfo {
        /// <summary>
        /// 城市所有者ID
        /// </summary>
        private string userId = String.Empty;
        /// <summary>
        /// 帐户验证编码
        /// </summary>
        private string verifyCode = String.Empty;
        /// <summary>
        /// 城市登录ID
        /// </summary>
        private int loginId = 0;
        /// <summary>
        /// 元素列表
        /// </summary>
        List<CityElement> elements = new List<CityElement>();
        /// <summary>
        /// 邻居
        /// </summary>
        List<CityFriendInfo> neighbors = new List<CityFriendInfo>();
        /// <summary>
        /// 火车列表
        /// </summary>
        List<TrainInfo> trains = new List<TrainInfo>();
        /// <summary>
        /// 升级元素列表
        /// </summary>
        List<UpLevelElementInfo> upLevelElements = new List<UpLevelElementInfo>();
        /// <summary>
        /// 升级配置列表
        /// </summary>
        List<UpLevelConfigInfo> upLevelConfigs = new List<UpLevelConfigInfo>();
        
        /// <summary>
        /// 升级配置列表
        /// </summary>
        public List<UpLevelConfigInfo> UpLevelConfigs {
            get {
                return upLevelConfigs;
            }
            set {
                upLevelConfigs = value;
            }
        }

        /// <summary>
        /// 获取或设置升级元素列表
        /// </summary>
        public List<UpLevelElementInfo> UpLevelElements {
            get {
                return upLevelElements;
            }
            set {
                upLevelElements = value;
            }
        }

        /// <summary>
        /// 获取或设置火车列表
        /// </summary>
        public List<TrainInfo> Trains {
            get {
                return trains;
            }
            set {
                trains = value;
            }
        }

        /// <summary>
        /// 我的火车状态
        /// </summary>
        public ProductStatus MyTrainStatus {
            get;
            set;
        }

        /// <summary>
        /// 获取或设置邻居
        /// </summary>
        public List<CityFriendInfo> Neighbors {
            get {
                return neighbors;
            }
            set {
                neighbors = value;
            }
        } 

        /// <summary>
        /// 元素列表
        /// </summary>
        public List<CityElement> Elements {
            get {
                return elements;
            }
            set {
                elements = value;
            }
        }

        /// <summary>
        /// 获取或设置城市名称
        /// </summary>
        public string CityName {
            get;
            set;
        }

        /// <summary>
        /// 获取或设置城市所有者ID
        /// </summary>
        public string UserId {
            get {
                return userId;
            }
            set {
                userId = value;
            }
        }

        /// <summary>
        /// 获取或设置帐户验证编码
        /// </summary>
        public string VerifyCode {
            get {
                return verifyCode;
            }
            set {
                verifyCode = value;
            }
        }

        /// <summary>
        /// 获取或设置城市登录ID
        /// </summary>
        public string LoginId {
            get {
                return loginId.ToString();
            }
            set {
                loginId = Convert.ToInt32(value);
            }
        }

        /// <summary>
        /// 获取或设置人口上限
        /// </summary>
        public int PopulationCap {
            get;
            set;
        }

        /// <summary>
        /// 获取或设置现金
        /// </summary>
        public int Cash {
            get;
            set;
        }

        /// <summary>
        /// 获取或设置经验值
        /// </summary>
        public int Exp {
            get;
            set;
        }

        /// <summary>
        /// 获取或设置升级经验
        /// </summary>
        public int NextLevelExp {
            get;
            set;
        }

        /// <summary>
        /// 获取或设置城市所有者名称
        /// </summary>
        public string UserName {
            get;
            set;
        }

        /// <summary>
        /// 获取或设置货物
        /// </summary>
        public int Goods {
            get;
            set;
        }

        /// <summary>
        /// 获取或设置金币
        /// </summary>
        public int Gold {
            get;
            set;
        }

        /// <summary>
        /// 获取或设置等级
        /// </summary>
        public int Level {
            get;
            set;
        }

        /// <summary>
        /// 获取或设置体力
        /// </summary>
        public int Energy {
            get;
            set;
        }

        /// <summary>
        /// 获取或设置人口数量
        /// </summary>
        public int Population {
            get;
            set;
        }

        /// <summary>
        /// 工厂状态
        /// </summary>
        public ProductStatus FactoryStatus {
            get;
            set;
        }

        /// <summary>
        /// 油井状态
        /// </summary>
        public ProductStatus OilwellStatus {
            get;
            set;
        }

        /// <summary>
        /// 访问获得奖励
        /// </summary>
        public Dictionary<string, object> VisitGet {
            get;
            set;
        }

        /// <summary>
        /// 访问帮助项目
        /// </summary>
        public Dictionary<string, object> VisiteHelp {
            get;
            set;
        }
    }
}
